
#include <version.h>
#include <asm_version.h>

#ifdef VER_MAJORVERSION
#undef VER_MAJORVERSION
#endif

#ifdef VER_MINORVERSION
#undef VER_MINORVERSION
#endif

#ifdef VER_PRODUCTBUILD
#undef VER_PRODUCTBUILD
#endif

#ifdef VER_PRODUCTBUILD_QFE
#undef VER_PRODUCTBUILD_QFE
#endif

#ifndef rpt
#define rpt 0
#endif

#define VER_MAJORVERSION        rmj
#define VER_MINORVERSION        rmm
#define VER_PRODUCTBUILD        rup
#define VER_PRODUCTBUILD_QFE    rpt

#define VER_ASSEMBLYMAJORVERSION        asm_rmj
#define VER_ASSEMBLYMINORVERSION        asm_rmm
#define VER_ASSEMBLYBUILD               asm_rup
#define VER_ASSEMBLYBUILD_QFE           asm_rpt

#define QUOTE_MACRO_HELPER(x)       #x
#define QUOTE_MACRO(x)              QUOTE_MACRO_HELPER(x)

#define QUOTE_MACRO_L_HELPER(x)     L###x
#define QUOTE_MACRO_L(x)            QUOTE_MACRO_L_HELPER(x)

#define CONCAT_MACRO_HELPER(x, y)   x ## y
#define CONCAT_MACRO(x, y)          CONCAT_MACRO_HELPER(x, y)

#define VER_PRODUCTVERSION             VER_MAJORVERSION,VER_MINORVERSION,VER_PRODUCTBUILD,VER_PRODUCTBUILD_QFE

#define VER_DOTPRODUCTVERSION          VER_MAJORVERSION.VER_MINORVERSION.VER_PRODUCTBUILD.VER_PRODUCTBUILD_QFE
#define VER_DOTASSEMBLYVERSION         VER_ASSEMBLYMAJORVERSION.VER_ASSEMBLYMINORVERSION.VER_ASSEMBLYBUILD.VER_ASSEMBLYBUILD_QFE

#define VER_UNDERSCORE_PRODUCTVERSION_STR5  CONCAT_MACRO(_, VER_PRODUCTBUILD_QFE)
#define VER_UNDERSCORE_PRODUCTVERSION_STR4  CONCAT_MACRO(VER_PRODUCTBUILD, VER_UNDERSCORE_PRODUCTVERSION_STR5)
#define VER_UNDERSCORE_PRODUCTVERSION_STR3  CONCAT_MACRO(_, VER_UNDERSCORE_PRODUCTVERSION_STR4)
#define VER_UNDERSCORE_PRODUCTVERSION_STR2  CONCAT_MACRO(VER_MINORVERSION, VER_UNDERSCORE_PRODUCTVERSION_STR3)
#define VER_UNDERSCORE_PRODUCTVERSION_STR1  CONCAT_MACRO(_, VER_UNDERSCORE_PRODUCTVERSION_STR2)

#define VER_UNDERSCORE_PRODUCTVERSION_STR   QUOTE_MACRO(CONCAT_MACRO(VER_MAJORVERSION, VER_UNDERSCORE_PRODUCTVERSION_STR1))
#define VER_UNDERSCORE_PRODUCTVERSION_STR_L QUOTE_MACRO_L(CONCAT_MACRO(VER_MAJORVERSION, VER_UNDERSCORE_PRODUCTVERSION_STR1))

#define VER_PRODUCTVERSION_STR         QUOTE_MACRO(VER_DOTPRODUCTVERSION)
#define VER_PRODUCTVERSION_STR_L       QUOTE_MACRO_L(VER_DOTPRODUCTVERSION)

#define VER_ASSEMBLYVERSION_STR        QUOTE_MACRO(VER_DOTASSEMBLYVERSION)
#define VER_ASSEMBLYVERSION_STR_L      QUOTE_MACRO_L(VER_DOTASSEMBLYVERSION)

#define VER_ECMA_PUBLICKEY             b77a5c561934e089
#define ECMA_PUBLICKEY_STR             QUOTE_MACRO(VER_ECMA_PUBLICKEY)
#define ECMA_PUBLICKEY_STR_L           QUOTE_MACRO_L(VER_ECMA_PUBLICKEY)

#define VER_ECMA_PUBLICKEY_FULL        00000000000000000400000000000000
#define ECMA_PUBLICKEY_FULL_STR        QUOTE_MACRO(VER_ECMA_PUBLICKEY_FULL)
#define ECMA_PUBLICKEY_FULL_STR_L      QUOTE_MACRO_L(VER_ECMA_PUBLICKEY_FULL)

#define VER_MICROSOFT_PUBLICKEY        b03f5f7f11d50a3a
#define MICROSOFT_PUBLICKEY_STR        QUOTE_MACRO(VER_MICROSOFT_PUBLICKEY)
#define MICROSOFT_PUBLICKEY_STR_L      QUOTE_MACRO_L(VER_MICROSOFT_PUBLICKEY)

#define VER_MICROSOFT_PUBLICKEY_FULL   002400000480000094000000060200000024000052534131000400000100010007D1FA57C4AED9F0A32E84AA0FAEFD0DE9E8FD6AEC8F87FB03766C834C99921EB23BE79AD9D5DCC1DD9AD236132102900B723CF980957FC4E177108FC607774F29E8320E92EA05ECE4E821C0A5EFE8F1645C4C0C93C1AB99285D622CAA652C1DFAD63D745D6F2DE5F17E5EAF0FC4963D261C8A12436518206DC093344D5AD293
#define MICROSOFT_PUBLICKEY_FULL_STR   QUOTE_MACRO(VER_MICROSOFT_PUBLICKEY_FULL)
#define MICROSOFT_PUBLICKEY_FULL_STR_L QUOTE_MACRO_L(VER_MICROSOFT_PUBLICKEY_FULL)

#define VER_ASPBROWSERCAPS_PUBLICKEY        b7bd7678b977bd8f
#define ASPBROWSERCAPS_PUBLICKEY_STR        QUOTE_MACRO(VER_ASPBROWSERCAPS_PUBLICKEY)
#define ASPBROWSERCAPS_PUBLICKEY_STR_L      QUOTE_MACRO_L(VER_ASPBROWSERCAPS_PUBLICKEY)

#define VER_ASPBROWSERCAPS_PUBLICKEY_FULL   002400000480000094000000060200000024000052534131000400000100010075ADA2F30EE588390A04620FCDF481C32D8355142B7382200BAC939A8A27F8BA491B9B9369774659D07658E2E27927A688C8C607D23B3DF58F8A7F4F81C9460CE782C635DE1B1DADD76B961B1CF88E3F503C0AD6CBBFF4AF69F08808F60DAAB5481D4065B477D49C54FF2581BEB665927E2B97CD77E3EDC2BD7BCABB781A2FC1
#define ASPBROWSERCAPS_PUBLICKEY_FULL_STR   QUOTE_MACRO(VER_ASPBROWSERCAPS_PUBLICKEY_FULL)
#define ASPBROWSERCAPS_PUBLICKEY_FULL_STR_L QUOTE_MACRO_L(VER_ASPBROWSERCAPS_PUBLICKEY_FULL)

#if ASSEMBLY_KEY_TYPE_ECMA

#define VER_PUBLICKEY                  VER_ECMA_PUBLICKEY
#define VER_PUBLICKEY_STR              VER_ECMA_PUBLICKEY_STR
#define VER_PUBLICKEY_STR_L            VER_ECMA_PUBLICKEY_STR_L

#elif ASSEMBLY_KEY_TYPE_MICROSOFT

#define VER_PUBLICKEY                  VER_MICROSOFT_PUBLICKEY
#define VER_PUBLICKEY_STR              VER_MICROSOFT_PUBLICKEY_STR
#define VER_PUBLICKEY_STR_L            VER_MICROSOFT_PUBLICKEY_STR_L

#endif

